/// \file quad5_2D.cpp
/// \brief tests 2D quadrature of order 5
/// \author LNM RWTH Aachen: Joerg Grande; SC RWTH Aachen: Oliver Fortmeier

/*
 * This file is part of DROPS.
 *
 * DROPS is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Lesser General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * DROPS is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public License
 * along with DROPS. If not, see <http://www.gnu.org/licenses/>.
 *
 *
 * Copyright 2009 LNM/SC RWTH Aachen, Germany
*/



#include "misc/utils.h"
#include "num/spmat.h"
#include "geom/multigrid.h"
#include "geom/builder.h"
#include "num/discretize.h"
#include "num/fe.h"
#include "num/quadrature.h"

using namespace DROPS;

int degx, degy, degz, degt;

double f(const Point3DCL& p, double)
{
    return  (degx==0 ? 1. : std::pow( p[0], degx))
           *(degy==0 ? 1. : std::pow( p[1], degy));
}

double g(const Point3DCL& p, double t)
{
    return  (degx==0 ? 1. : std::pow( p[0], degx))
           *(degy==0 ? 1. : std::pow( p[1], degy))
           *(degz==0 ? 1. : std::pow( p[2], degz))
           *(degt==0 ? 1. : std::pow( t   , degt));
}

const double exactint[21] = { // with maple
  0.50000000000000000000, 0.16666666666666666667, 0.083333333333333333333,

  0.050000000000000000000, 0.033333333333333333333, 0.023809523809523809524,

  0.16666666666666666667, 0.041666666666666666667, 0.016666666666666666667,

  0.0083333333333333333333, 0.0047619047619047619048, 0.083333333333333333333,

  0.016666666666666666667, 0.0055555555555555555556, 0.0023809523809523809524,

  0.050000000000000000000, 0.0083333333333333333333, 0.0023809523809523809524,

  0.033333333333333333333, 0.0047619047619047619048, 0.023809523809523809524
};

const double exactint_ST[][126]= {
    { 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0. },
    { .166666666666666667, .416666666666666667e-1, .166666666666666667e-1, .833333333333333333e-2, .476190476190476190e-2, .297619047619047619e-2, .416666666666666667e-1, .833333333333333333e-2, .277777777777777778e-2, .119047619047619048e-2, .595238095238095238e-3, .166666666666666667e-1, .277777777777777778e-2, .793650793650793651e-3, .297619047619047619e-3, .833333333333333333e-2, .119047619047619048e-2, .297619047619047619e-3, .476190476190476190e-2, .595238095238095238e-3, .297619047619047619e-2, .416666666666666667e-1, .833333333333333333e-2, .277777777777777778e-2, .119047619047619048e-2, .595238095238095238e-3, .833333333333333333e-2, .138888888888888889e-2, .396825396825396825e-3, .148809523809523810e-3, .277777777777777778e-2, .396825396825396825e-3, .992063492063492063e-4, .119047619047619048e-2, .148809523809523810e-3, .595238095238095238e-3, .166666666666666667e-1, .277777777777777778e-2, .793650793650793651e-3, .297619047619047619e-3, .277777777777777778e-2, .396825396825396825e-3, .992063492063492063e-4, .793650793650793651e-3, .992063492063492063e-4, .297619047619047619e-3, .833333333333333333e-2, .119047619047619048e-2, .297619047619047619e-3, .119047619047619048e-2, .148809523809523810e-3, .297619047619047619e-3, .476190476190476190e-2, .595238095238095238e-3, .595238095238095238e-3, .297619047619047619e-2, .833333333333333333e-1, .208333333333333333e-1, .833333333333333333e-2, .416666666666666667e-2, .238095238095238095e-2, .208333333333333333e-1, .416666666666666667e-2, .138888888888888889e-2, .595238095238095238e-3, .833333333333333333e-2, .138888888888888889e-2, .396825396825396825e-3, .416666666666666667e-2, .595238095238095238e-3, .238095238095238095e-2, .208333333333333333e-1, .416666666666666667e-2, .138888888888888889e-2, .595238095238095238e-3, .416666666666666667e-2, .694444444444444444e-3, .198412698412698413e-3, .138888888888888889e-2, .198412698412698413e-3, .595238095238095238e-3, .833333333333333333e-2, .138888888888888889e-2, .396825396825396825e-3, .138888888888888889e-2, .198412698412698413e-3, .396825396825396825e-3, .416666666666666667e-2, .595238095238095238e-3, .595238095238095238e-3, .238095238095238095e-2, .416666666666666667e-1, .104166666666666667e-1, .416666666666666667e-2, .208333333333333333e-2, .104166666666666667e-1, .208333333333333333e-2, .694444444444444444e-3, .416666666666666667e-2, .694444444444444444e-3, .208333333333333333e-2, .104166666666666667e-1, .208333333333333333e-2, .694444444444444444e-3, .208333333333333333e-2, .347222222222222222e-3, .694444444444444444e-3, .416666666666666667e-2, .694444444444444444e-3, .694444444444444444e-3, .208333333333333333e-2, .208333333333333333e-1, .520833333333333333e-2, .208333333333333333e-2, .520833333333333333e-2, .104166666666666667e-2, .208333333333333333e-2, .520833333333333333e-2, .104166666666666667e-2, .104166666666666667e-2, .208333333333333333e-2, .104166666666666667e-1, .260416666666666667e-2, .260416666666666667e-2, .260416666666666667e-2, .520833333333333333e-2 },
    { 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0. },
    { .186338998124982475, .465847495312456189e-1, .186338998124982475e-1, .931694990624912374e-2, .532397137499949930e-2, .332748210937468706e-2, .465847495312456189e-1, .931694990624912374e-2, .310564996874970791e-2, .133099284374987482e-2, .665496421874937413e-3, .186338998124982475e-1, .310564996874970791e-2, .887328562499916549e-3, .332748210937468706e-3, .931694990624912374e-2, .133099284374987482e-2, .332748210937468706e-3, .532397137499949930e-2, .665496421874937413e-3, .332748210937468706e-2, .465847495312456189e-1, .931694990624912374e-2, .310564996874970791e-2, .133099284374987482e-2, .665496421874937413e-3, .931694990624912374e-2, .155282498437485396e-2, .443664281249958274e-3, .166374105468734353e-3, .310564996874970791e-2, .443664281249958274e-3, .110916070312489569e-3, .133099284374987482e-2, .166374105468734353e-3, .665496421874937413e-3, .186338998124982475e-1, .310564996874970791e-2, .887328562499916549e-3, .332748210937468706e-3, .310564996874970791e-2, .443664281249958274e-3, .110916070312489569e-3, .887328562499916549e-3, .110916070312489569e-3, .332748210937468706e-3, .931694990624912374e-2, .133099284374987482e-2, .332748210937468706e-3, .133099284374987482e-2, .166374105468734353e-3, .332748210937468706e-3, .532397137499949930e-2, .665496421874937413e-3, .665496421874937413e-3, .332748210937468706e-2, .698771242968684281e-1, .186338998124982475e-1, .776412492187426979e-2, .399297853124962446e-2, .232923747656228094e-2, .186338998124982475e-1, .388206246093713490e-2, .133099284374987482e-2, .582309369140570233e-3, .776412492187426979e-2, .133099284374987482e-2, .388206246093713490e-3, .399297853124962446e-2, .582309369140570233e-3, .232923747656228094e-2, .139754248593736856e-1, .310564996874970791e-2, .110916070312489569e-2, .499122316406203057e-3, .310564996874970791e-2, .554580351562447843e-3, .166374105468734353e-3, .110916070312489569e-2, .166374105468734353e-3, .499122316406203057e-3, .465847495312456189e-2, .887328562499916549e-3, .277290175781223921e-3, .887328562499916549e-3, .138645087890611961e-3, .277290175781223921e-3, .199648926562481223e-2, .332748210937468706e-3, .332748210937468706e-3, .998244632812406115e-3, .279508497187473712e-1, .776412492187426979e-2, .332748210937468706e-2, .174692810742171070e-2, .776412492187426979e-2, .166374105468734353e-2, .582309369140570233e-3, .332748210937468706e-2, .582309369140570233e-3, .174692810742171070e-2, .465847495312456189e-2, .110916070312489569e-2, .415935263671835882e-3, .110916070312489569e-2, .207967631835917941e-3, .415935263671835882e-3, .133099284374987482e-2, .277290175781223921e-3, .277290175781223921e-3, .499122316406203057e-3, .116461873828114047e-1, .332748210937468706e-2, .145577342285142558e-2, .332748210937468706e-2, .727886711425712794e-3, .145577342285142558e-2, .166374105468734353e-2, .415935263671835882e-3, .415935263671835882e-3, .415935263671835882e-3, .499122316406203057e-2, .145577342285142558e-2, .145577342285142558e-2, .623902895507753821e-3, .218366013427713838e-2 },
    { 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0. },
    { .186338998124982475, .465847495312456189e-1, .186338998124982475e-1, .931694990624912374e-2, .532397137499949930e-2, .332748210937468706e-2, .465847495312456189e-1, .931694990624912374e-2, .310564996874970791e-2, .133099284374987482e-2, .665496421874937413e-3, .186338998124982475e-1, .310564996874970791e-2, .887328562499916549e-3, .332748210937468706e-3, .931694990624912374e-2, .133099284374987482e-2, .332748210937468706e-3, .532397137499949930e-2, .665496421874937413e-3, .332748210937468706e-2, .465847495312456189e-1, .931694990624912374e-2, .310564996874970791e-2, .133099284374987482e-2, .665496421874937413e-3, .931694990624912374e-2, .155282498437485396e-2, .443664281249958274e-3, .166374105468734353e-3, .310564996874970791e-2, .443664281249958274e-3, .110916070312489569e-3, .133099284374987482e-2, .166374105468734353e-3, .665496421874937413e-3, .186338998124982475e-1, .310564996874970791e-2, .887328562499916549e-3, .332748210937468706e-3, .310564996874970791e-2, .443664281249958274e-3, .110916070312489569e-3, .887328562499916549e-3, .110916070312489569e-3, .332748210937468706e-3, .931694990624912374e-2, .133099284374987482e-2, .332748210937468706e-3, .133099284374987482e-2, .166374105468734353e-3, .332748210937468706e-3, .532397137499949930e-2, .665496421874937413e-3, .665496421874937413e-3, .332748210937468706e-2, .698771242968684281e-1, .186338998124982475e-1, .776412492187426979e-2, .399297853124962446e-2, .232923747656228094e-2, .139754248593736856e-1, .310564996874970791e-2, .110916070312489569e-2, .499122316406203057e-3, .465847495312456189e-2, .887328562499916549e-3, .277290175781223921e-3, .199648926562481223e-2, .332748210937468706e-3, .998244632812406115e-3, .186338998124982475e-1, .388206246093713490e-2, .133099284374987482e-2, .582309369140570233e-3, .310564996874970791e-2, .554580351562447843e-3, .166374105468734353e-3, .887328562499916549e-3, .138645087890611961e-3, .332748210937468706e-3, .776412492187426979e-2, .133099284374987482e-2, .388206246093713490e-3, .110916070312489569e-2, .166374105468734353e-3, .277290175781223921e-3, .399297853124962446e-2, .582309369140570233e-3, .499122316406203057e-3, .232923747656228094e-2, .279508497187473712e-1, .776412492187426979e-2, .332748210937468706e-2, .174692810742171070e-2, .465847495312456189e-2, .110916070312489569e-2, .415935263671835882e-3, .133099284374987482e-2, .277290175781223921e-3, .499122316406203057e-3, .776412492187426979e-2, .166374105468734353e-2, .582309369140570233e-3, .110916070312489569e-2, .207967631835917941e-3, .277290175781223921e-3, .332748210937468706e-2, .582309369140570233e-3, .415935263671835882e-3, .174692810742171070e-2, .116461873828114047e-1, .332748210937468706e-2, .145577342285142558e-2, .166374105468734353e-2, .415935263671835882e-3, .415935263671835882e-3, .332748210937468706e-2, .727886711425712794e-3, .415935263671835882e-3, .145577342285142558e-2, .499122316406203057e-2, .145577342285142558e-2, .623902895507753821e-3, .145577342285142558e-2, .218366013427713838e-2 },
    { 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0. },
    { .204124145231931508, .510310363079828770e-1, .204124145231931508e-1, .102062072615965754e-1, .583211843519804309e-2, .364507402199877695e-2, .510310363079828770e-1, .102062072615965754e-1, .340206908719885847e-2, .145802960879951077e-2, .729014804399755387e-3, .204124145231931508e-1, .340206908719885847e-2, .972019739199673848e-3, .364507402199877695e-3, .102062072615965754e-1, .145802960879951077e-2, .364507402199877695e-3, .583211843519804309e-2, .729014804399755387e-3, .364507402199877695e-2, .510310363079828770e-1, .102062072615965754e-1, .340206908719885847e-2, .145802960879951077e-2, .729014804399755387e-3, .102062072615965754e-1, .170103454359942924e-2, .486009869599836925e-3, .182253701099938847e-3, .340206908719885847e-2, .486009869599836925e-3, .121502467399959231e-3, .145802960879951077e-2, .182253701099938847e-3, .729014804399755387e-3, .204124145231931508e-1, .340206908719885847e-2, .972019739199673848e-3, .364507402199877695e-3, .340206908719885847e-2, .486009869599836925e-3, .121502467399959231e-3, .972019739199673848e-3, .121502467399959231e-3, .364507402199877695e-3, .102062072615965754e-1, .145802960879951077e-2, .364507402199877695e-3, .145802960879951077e-2, .182253701099938847e-3, .364507402199877695e-3, .583211843519804309e-2, .729014804399755387e-3, .729014804399755387e-3, .364507402199877695e-2, .510310363079828770e-1, .153093108923948631e-1, .680413817439771695e-2, .364507402199877695e-2, .218704441319926616e-2, .102062072615965754e-1, .255155181539914386e-2, .972019739199673848e-3, .455634252749847117e-3, .340206908719885847e-2, .729014804399755387e-3, .243004934799918462e-3, .145802960879951077e-2, .273380551649908270e-3, .729014804399755387e-3, .102062072615965754e-1, .255155181539914386e-2, .972019739199673848e-3, .455634252749847117e-3, .170103454359942924e-2, .364507402199877695e-3, .121502467399959231e-3, .486009869599836925e-3, .911268505499694234e-4, .182253701099938847e-3, .340206908719885847e-2, .729014804399755387e-3, .243004934799918462e-3, .486009869599836925e-3, .911268505499694234e-4, .121502467399959231e-3, .145802960879951077e-2, .273380551649908270e-3, .182253701099938847e-3, .729014804399755387e-3, .153093108923948631e-1, .510310363079828770e-2, .243004934799918462e-2, .136690275824954135e-2, .255155181539914386e-2, .729014804399755387e-3, .303756168499898078e-3, .729014804399755387e-3, .182253701099938847e-3, .273380551649908270e-3, .255155181539914386e-2, .729014804399755387e-3, .303756168499898078e-3, .364507402199877695e-3, .911268505499694234e-4, .911268505499694234e-4, .729014804399755387e-3, .182253701099938847e-3, .911268505499694234e-4, .273380551649908270e-3, .510310363079828770e-2, .182253701099938847e-2, .911268505499694234e-3, .729014804399755387e-3, .227817126374923559e-3, .182253701099938847e-3, .729014804399755387e-3, .227817126374923559e-3, .911268505499694234e-4, .182253701099938847e-3, .182253701099938847e-2, .683451379124770676e-3, .227817126374923559e-3, .227817126374923559e-3, .683451379124770676e-3 },
    { 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0. },
    { .186338998124982475, .465847495312456189e-1, .186338998124982475e-1, .931694990624912374e-2, .532397137499949930e-2, .332748210937468706e-2, .465847495312456189e-1, .931694990624912374e-2, .310564996874970791e-2, .133099284374987482e-2, .665496421874937413e-3, .186338998124982475e-1, .310564996874970791e-2, .887328562499916549e-3, .332748210937468706e-3, .931694990624912374e-2, .133099284374987482e-2, .332748210937468706e-3, .532397137499949930e-2, .665496421874937413e-3, .332748210937468706e-2, .465847495312456189e-1, .931694990624912374e-2, .310564996874970791e-2, .133099284374987482e-2, .665496421874937413e-3, .931694990624912374e-2, .155282498437485396e-2, .443664281249958274e-3, .166374105468734353e-3, .310564996874970791e-2, .443664281249958274e-3, .110916070312489569e-3, .133099284374987482e-2, .166374105468734353e-3, .665496421874937413e-3, .186338998124982475e-1, .310564996874970791e-2, .887328562499916549e-3, .332748210937468706e-3, .310564996874970791e-2, .443664281249958274e-3, .110916070312489569e-3, .887328562499916549e-3, .110916070312489569e-3, .332748210937468706e-3, .931694990624912374e-2, .133099284374987482e-2, .332748210937468706e-3, .133099284374987482e-2, .166374105468734353e-3, .332748210937468706e-3, .532397137499949930e-2, .665496421874937413e-3, .665496421874937413e-3, .332748210937468706e-2, .698771242968684281e-1, .139754248593736856e-1, .465847495312456189e-2, .199648926562481223e-2, .998244632812406115e-3, .186338998124982475e-1, .310564996874970791e-2, .887328562499916549e-3, .332748210937468706e-3, .776412492187426979e-2, .110916070312489569e-2, .277290175781223921e-3, .399297853124962446e-2, .499122316406203057e-3, .232923747656228094e-2, .186338998124982475e-1, .310564996874970791e-2, .887328562499916549e-3, .332748210937468706e-3, .388206246093713490e-2, .554580351562447843e-3, .138645087890611961e-3, .133099284374987482e-2, .166374105468734353e-3, .582309369140570233e-3, .776412492187426979e-2, .110916070312489569e-2, .277290175781223921e-3, .133099284374987482e-2, .166374105468734353e-3, .388206246093713490e-3, .399297853124962446e-2, .499122316406203057e-3, .582309369140570233e-3, .232923747656228094e-2, .279508497187473712e-1, .465847495312456189e-2, .133099284374987482e-2, .499122316406203057e-3, .776412492187426979e-2, .110916070312489569e-2, .277290175781223921e-3, .332748210937468706e-2, .415935263671835882e-3, .174692810742171070e-2, .776412492187426979e-2, .110916070312489569e-2, .277290175781223921e-3, .166374105468734353e-2, .207967631835917941e-3, .582309369140570233e-3, .332748210937468706e-2, .415935263671835882e-3, .582309369140570233e-3, .174692810742171070e-2, .116461873828114047e-1, .166374105468734353e-2, .415935263671835882e-3, .332748210937468706e-2, .415935263671835882e-3, .145577342285142558e-2, .332748210937468706e-2, .415935263671835882e-3, .727886711425712794e-3, .145577342285142558e-2, .499122316406203057e-2, .623902895507753821e-3, .145577342285142558e-2, .145577342285142558e-2, .218366013427713838e-2 },
    { 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0. },
    { .204124145231931508, .510310363079828770e-1, .204124145231931508e-1, .102062072615965754e-1, .583211843519804309e-2, .364507402199877695e-2, .510310363079828770e-1, .102062072615965754e-1, .340206908719885847e-2, .145802960879951077e-2, .729014804399755387e-3, .204124145231931508e-1, .340206908719885847e-2, .972019739199673848e-3, .364507402199877695e-3, .102062072615965754e-1, .145802960879951077e-2, .364507402199877695e-3, .583211843519804309e-2, .729014804399755387e-3, .364507402199877695e-2, .510310363079828770e-1, .102062072615965754e-1, .340206908719885847e-2, .145802960879951077e-2, .729014804399755387e-3, .102062072615965754e-1, .170103454359942924e-2, .486009869599836925e-3, .182253701099938847e-3, .340206908719885847e-2, .486009869599836925e-3, .121502467399959231e-3, .145802960879951077e-2, .182253701099938847e-3, .729014804399755387e-3, .204124145231931508e-1, .340206908719885847e-2, .972019739199673848e-3, .364507402199877695e-3, .340206908719885847e-2, .486009869599836925e-3, .121502467399959231e-3, .972019739199673848e-3, .121502467399959231e-3, .364507402199877695e-3, .102062072615965754e-1, .145802960879951077e-2, .364507402199877695e-3, .145802960879951077e-2, .182253701099938847e-3, .364507402199877695e-3, .583211843519804309e-2, .729014804399755387e-3, .729014804399755387e-3, .364507402199877695e-2, .510310363079828770e-1, .102062072615965754e-1, .340206908719885847e-2, .145802960879951077e-2, .729014804399755387e-3, .153093108923948631e-1, .255155181539914386e-2, .729014804399755387e-3, .273380551649908270e-3, .680413817439771695e-2, .972019739199673848e-3, .243004934799918462e-3, .364507402199877695e-2, .455634252749847117e-3, .218704441319926616e-2, .102062072615965754e-1, .170103454359942924e-2, .486009869599836925e-3, .182253701099938847e-3, .255155181539914386e-2, .364507402199877695e-3, .911268505499694234e-4, .972019739199673848e-3, .121502467399959231e-3, .455634252749847117e-3, .340206908719885847e-2, .486009869599836925e-3, .121502467399959231e-3, .729014804399755387e-3, .911268505499694234e-4, .243004934799918462e-3, .145802960879951077e-2, .182253701099938847e-3, .273380551649908270e-3, .729014804399755387e-3, .153093108923948631e-1, .255155181539914386e-2, .729014804399755387e-3, .273380551649908270e-3, .510310363079828770e-2, .729014804399755387e-3, .182253701099938847e-3, .243004934799918462e-2, .303756168499898078e-3, .136690275824954135e-2, .255155181539914386e-2, .364507402199877695e-3, .911268505499694234e-4, .729014804399755387e-3, .911268505499694234e-4, .303756168499898078e-3, .729014804399755387e-3, .911268505499694234e-4, .182253701099938847e-3, .273380551649908270e-3, .510310363079828770e-2, .729014804399755387e-3, .182253701099938847e-3, .182253701099938847e-2, .227817126374923559e-3, .911268505499694234e-3, .729014804399755387e-3, .911268505499694234e-4, .227817126374923559e-3, .182253701099938847e-3, .182253701099938847e-2, .227817126374923559e-3, .683451379124770676e-3, .227817126374923559e-3, .683451379124770676e-3 },
    { 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0. },
    { .204124145231931508, .510310363079828770e-1, .204124145231931508e-1, .102062072615965754e-1, .583211843519804309e-2, .364507402199877695e-2, .510310363079828770e-1, .102062072615965754e-1, .340206908719885847e-2, .145802960879951077e-2, .729014804399755387e-3, .204124145231931508e-1, .340206908719885847e-2, .972019739199673848e-3, .364507402199877695e-3, .102062072615965754e-1, .145802960879951077e-2, .364507402199877695e-3, .583211843519804309e-2, .729014804399755387e-3, .364507402199877695e-2, .510310363079828770e-1, .102062072615965754e-1, .340206908719885847e-2, .145802960879951077e-2, .729014804399755387e-3, .102062072615965754e-1, .170103454359942924e-2, .486009869599836925e-3, .182253701099938847e-3, .340206908719885847e-2, .486009869599836925e-3, .121502467399959231e-3, .145802960879951077e-2, .182253701099938847e-3, .729014804399755387e-3, .204124145231931508e-1, .340206908719885847e-2, .972019739199673848e-3, .364507402199877695e-3, .340206908719885847e-2, .486009869599836925e-3, .121502467399959231e-3, .972019739199673848e-3, .121502467399959231e-3, .364507402199877695e-3, .102062072615965754e-1, .145802960879951077e-2, .364507402199877695e-3, .145802960879951077e-2, .182253701099938847e-3, .364507402199877695e-3, .583211843519804309e-2, .729014804399755387e-3, .729014804399755387e-3, .364507402199877695e-2, .510310363079828770e-1, .102062072615965754e-1, .340206908719885847e-2, .145802960879951077e-2, .729014804399755387e-3, .102062072615965754e-1, .170103454359942924e-2, .486009869599836925e-3, .182253701099938847e-3, .340206908719885847e-2, .486009869599836925e-3, .121502467399959231e-3, .145802960879951077e-2, .182253701099938847e-3, .729014804399755387e-3, .153093108923948631e-1, .255155181539914386e-2, .729014804399755387e-3, .273380551649908270e-3, .255155181539914386e-2, .364507402199877695e-3, .911268505499694234e-4, .729014804399755387e-3, .911268505499694234e-4, .273380551649908270e-3, .680413817439771695e-2, .972019739199673848e-3, .243004934799918462e-3, .972019739199673848e-3, .121502467399959231e-3, .243004934799918462e-3, .364507402199877695e-2, .455634252749847117e-3, .455634252749847117e-3, .218704441319926616e-2, .153093108923948631e-1, .255155181539914386e-2, .729014804399755387e-3, .273380551649908270e-3, .255155181539914386e-2, .364507402199877695e-3, .911268505499694234e-4, .729014804399755387e-3, .911268505499694234e-4, .273380551649908270e-3, .510310363079828770e-2, .729014804399755387e-3, .182253701099938847e-3, .729014804399755387e-3, .911268505499694234e-4, .182253701099938847e-3, .243004934799918462e-2, .303756168499898078e-3, .303756168499898078e-3, .136690275824954135e-2, .510310363079828770e-2, .729014804399755387e-3, .182253701099938847e-3, .729014804399755387e-3, .911268505499694234e-4, .182253701099938847e-3, .182253701099938847e-2, .227817126374923559e-3, .227817126374923559e-3, .911268505499694234e-3, .182253701099938847e-2, .227817126374923559e-3, .227817126374923559e-3, .683451379124770676e-3, .683451379124770676e-3 },
    { .433012701892219322, .144337567297406441, .721687836487032205e-1, .433012701892219322e-1, .288675134594812882e-1, .206196524710580630e-1, .144337567297406441, .360843918243516102e-1, .144337567297406441e-1, .721687836487032205e-2, .412393049421161259e-2, .721687836487032205e-1, .144337567297406441e-1, .481125224324688136e-2, .206196524710580630e-2, .433012701892219322e-1, .721687836487032205e-2, .206196524710580630e-2, .288675134594812882e-1, .412393049421161259e-2, .206196524710580630e-1, .144337567297406441, .360843918243516102e-1, .144337567297406441e-1, .721687836487032205e-2, .412393049421161259e-2, .360843918243516102e-1, .721687836487032205e-2, .240562612162344068e-2, .103098262355290315e-2, .144337567297406441e-1, .240562612162344068e-2, .687321749035268765e-3, .721687836487032205e-2, .103098262355290315e-2, .412393049421161259e-2, .721687836487032205e-1, .144337567297406441e-1, .481125224324688136e-2, .206196524710580630e-2, .144337567297406441e-1, .240562612162344068e-2, .687321749035268765e-3, .481125224324688136e-2, .687321749035268765e-3, .206196524710580630e-2, .433012701892219322e-1, .721687836487032205e-2, .206196524710580630e-2, .721687836487032205e-2, .103098262355290315e-2, .206196524710580630e-2, .288675134594812882e-1, .412393049421161259e-2, .412393049421161259e-2, .206196524710580630e-1, .216506350946109661, .721687836487032205e-1, .360843918243516102e-1, .216506350946109661e-1, .144337567297406441e-1, .721687836487032205e-1, .180421959121758052e-1, .721687836487032205e-2, .360843918243516102e-2, .360843918243516102e-1, .721687836487032205e-2, .240562612162344068e-2, .216506350946109661e-1, .360843918243516102e-2, .144337567297406441e-1, .721687836487032205e-1, .180421959121758052e-1, .721687836487032205e-2, .360843918243516102e-2, .180421959121758052e-1, .360843918243516102e-2, .120281306081172034e-2, .721687836487032205e-2, .120281306081172034e-2, .360843918243516102e-2, .360843918243516102e-1, .721687836487032205e-2, .240562612162344068e-2, .721687836487032205e-2, .120281306081172034e-2, .240562612162344068e-2, .216506350946109661e-1, .360843918243516102e-2, .360843918243516102e-2, .144337567297406441e-1, .144337567297406441, .481125224324688136e-1, .240562612162344068e-1, .144337567297406441e-1, .481125224324688136e-1, .120281306081172034e-1, .481125224324688136e-2, .240562612162344068e-1, .481125224324688136e-2, .144337567297406441e-1, .481125224324688136e-1, .120281306081172034e-1, .481125224324688136e-2, .120281306081172034e-1, .240562612162344068e-2, .481125224324688136e-2, .240562612162344068e-1, .481125224324688136e-2, .481125224324688136e-2, .144337567297406441e-1, .108253175473054831, .360843918243516102e-1, .180421959121758052e-1, .360843918243516102e-1, .902109795608790255e-2, .180421959121758052e-1, .360843918243516102e-1, .902109795608790255e-2, .902109795608790255e-2, .180421959121758052e-1, .866025403784438645e-1, .288675134594812882e-1, .288675134594812882e-1, .288675134594812882e-1, .721687836487032205e-1 },
    { .220479275922049216, .551198189805123041e-1, .220479275922049216e-1, .110239637961024608e-1, .629940788348712047e-2, .393712992717945028e-2, .551198189805123041e-1, .110239637961024608e-1, .367465459870082026e-2, .157485197087178011e-2, .787425985435890059e-3, .220479275922049216e-1, .367465459870082026e-2, .104990131391452008e-2, .393712992717945028e-3, .110239637961024608e-1, .157485197087178011e-2, .393712992717945028e-3, .629940788348712047e-2, .787425985435890059e-3, .393712992717945028e-2, .551198189805123041e-1, .110239637961024608e-1, .367465459870082026e-2, .157485197087178011e-2, .787425985435890059e-3, .110239637961024608e-1, .183732729935041013e-2, .524950656957260037e-3, .196856496358972514e-3, .367465459870082026e-2, .524950656957260037e-3, .131237664239315009e-3, .157485197087178011e-2, .196856496358972514e-3, .787425985435890059e-3, .220479275922049216e-1, .367465459870082026e-2, .104990131391452008e-2, .393712992717945028e-3, .367465459870082026e-2, .524950656957260037e-3, .131237664239315009e-3, .104990131391452008e-2, .131237664239315009e-3, .393712992717945028e-3, .110239637961024608e-1, .157485197087178011e-2, .393712992717945028e-3, .157485197087178011e-2, .196856496358972514e-3, .393712992717945028e-3, .629940788348712047e-2, .787425985435890059e-3, .787425985435890059e-3, .393712992717945028e-2, .275599094902561520e-1, .551198189805123041e-2, .183732729935041013e-2, .787425985435890059e-3, .393712992717945028e-3, .551198189805123041e-2, .918663649675205065e-3, .262475328478630019e-3, .984282481794862571e-4, .183732729935041013e-2, .262475328478630019e-3, .656188321196575047e-4, .787425985435890059e-3, .984282481794862571e-4, .393712992717945028e-3, .551198189805123041e-2, .918663649675205065e-3, .262475328478630019e-3, .984282481794862571e-4, .918663649675205065e-3, .131237664239315009e-3, .328094160598287524e-4, .262475328478630019e-3, .328094160598287524e-4, .984282481794862571e-4, .183732729935041013e-2, .262475328478630019e-3, .656188321196575047e-4, .262475328478630019e-3, .328094160598287524e-4, .656188321196575047e-4, .787425985435890059e-3, .984282481794862571e-4, .984282481794862571e-4, .393712992717945028e-3, .551198189805123041e-2, .918663649675205065e-3, .262475328478630019e-3, .984282481794862571e-4, .918663649675205065e-3, .131237664239315009e-3, .328094160598287524e-4, .262475328478630019e-3, .328094160598287524e-4, .984282481794862571e-4, .918663649675205065e-3, .131237664239315009e-3, .328094160598287524e-4, .131237664239315009e-3, .164047080299143762e-4, .328094160598287524e-4, .262475328478630019e-3, .328094160598287524e-4, .328094160598287524e-4, .984282481794862571e-4, .137799547451280760e-2, .196856496358972514e-3, .492141240897431286e-4, .196856496358972514e-3, .246070620448715643e-4, .492141240897431286e-4, .196856496358972514e-3, .246070620448715643e-4, .246070620448715643e-4, .492141240897431286e-4, .393712992717945028e-3, .492141240897431286e-4, .492141240897431286e-4, .492141240897431286e-4, .123035310224357821e-3 },
    { 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0. },
    { .333333333333333334, .833333333333333334e-1, .333333333333333334e-1, .166666666666666667e-1, .952380952380952380e-2, .595238095238095238e-2, .833333333333333334e-1, .166666666666666667e-1, .555555555555555556e-2, .238095238095238096e-2, .119047619047619048e-2, .333333333333333334e-1, .555555555555555556e-2, .158730158730158730e-2, .595238095238095238e-3, .166666666666666667e-1, .238095238095238096e-2, .595238095238095238e-3, .952380952380952380e-2, .119047619047619048e-2, .595238095238095238e-2, .833333333333333334e-1, .166666666666666667e-1, .555555555555555556e-2, .238095238095238096e-2, .119047619047619048e-2, .166666666666666667e-1, .277777777777777778e-2, .793650793650793650e-3, .297619047619047620e-3, .555555555555555556e-2, .793650793650793650e-3, .198412698412698413e-3, .238095238095238096e-2, .297619047619047620e-3, .119047619047619048e-2, .333333333333333334e-1, .555555555555555556e-2, .158730158730158730e-2, .595238095238095238e-3, .555555555555555556e-2, .793650793650793650e-3, .198412698412698413e-3, .158730158730158730e-2, .198412698412698413e-3, .595238095238095238e-3, .166666666666666667e-1, .238095238095238096e-2, .595238095238095238e-3, .238095238095238096e-2, .297619047619047620e-3, .595238095238095238e-3, .952380952380952380e-2, .119047619047619048e-2, .119047619047619048e-2, .595238095238095238e-2, .250000000000000000, .666666666666666666e-1, .277777777777777778e-1, .142857142857142857e-1, .833333333333333334e-2, .666666666666666666e-1, .138888888888888889e-1, .476190476190476190e-2, .208333333333333334e-2, .277777777777777778e-1, .476190476190476190e-2, .138888888888888889e-2, .142857142857142857e-1, .208333333333333334e-2, .833333333333333334e-2, .666666666666666666e-1, .138888888888888889e-1, .476190476190476190e-2, .208333333333333334e-2, .138888888888888889e-1, .238095238095238096e-2, .694444444444444444e-3, .476190476190476190e-2, .694444444444444444e-3, .208333333333333334e-2, .277777777777777778e-1, .476190476190476190e-2, .138888888888888889e-2, .476190476190476190e-2, .694444444444444444e-3, .138888888888888889e-2, .142857142857142857e-1, .208333333333333334e-2, .208333333333333334e-2, .833333333333333334e-2, .200000000000000000, .555555555555555556e-1, .238095238095238096e-1, .125000000000000000e-1, .555555555555555556e-1, .119047619047619048e-1, .416666666666666666e-2, .238095238095238096e-1, .416666666666666666e-2, .125000000000000000e-1, .555555555555555556e-1, .119047619047619048e-1, .416666666666666666e-2, .119047619047619048e-1, .208333333333333334e-2, .416666666666666666e-2, .238095238095238096e-1, .416666666666666666e-2, .416666666666666666e-2, .125000000000000000e-1, .166666666666666667, .476190476190476190e-1, .208333333333333334e-1, .476190476190476190e-1, .104166666666666667e-1, .208333333333333334e-1, .476190476190476190e-1, .104166666666666667e-1, .104166666666666667e-1, .208333333333333334e-1, .142857142857142857, .416666666666666666e-1, .416666666666666666e-1, .416666666666666666e-1, .125000000000000000 },
    { 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0. },
    { .288675134594812882, .721687836487032205e-1, .288675134594812882e-1, .144337567297406441e-1, .824786098842322518e-2, .515491311776451574e-2, .721687836487032205e-1, .144337567297406441e-1, .481125224324688136e-2, .206196524710580630e-2, .103098262355290315e-2, .288675134594812882e-1, .481125224324688136e-2, .137464349807053753e-2, .515491311776451574e-3, .144337567297406441e-1, .206196524710580630e-2, .515491311776451574e-3, .824786098842322518e-2, .103098262355290315e-2, .515491311776451574e-2, .721687836487032205e-1, .144337567297406441e-1, .481125224324688136e-2, .206196524710580630e-2, .103098262355290315e-2, .144337567297406441e-1, .240562612162344068e-2, .687321749035268765e-3, .257745655888225788e-3, .481125224324688136e-2, .687321749035268765e-3, .171830437258817191e-3, .206196524710580630e-2, .257745655888225788e-3, .103098262355290315e-2, .288675134594812882e-1, .481125224324688136e-2, .137464349807053753e-2, .515491311776451574e-3, .481125224324688136e-2, .687321749035268765e-3, .171830437258817191e-3, .137464349807053753e-2, .171830437258817191e-3, .515491311776451574e-3, .144337567297406441e-1, .206196524710580630e-2, .515491311776451574e-3, .206196524710580630e-2, .257745655888225788e-3, .515491311776451574e-3, .824786098842322518e-2, .103098262355290315e-2, .103098262355290315e-2, .515491311776451574e-2, .144337567297406441, .433012701892219322e-1, .192450089729875254e-1, .103098262355290315e-1, .618589574131741890e-2, .433012701892219322e-1, .962250448649376273e-2, .343660874517634383e-2, .154647393532935472e-2, .192450089729875254e-1, .343660874517634383e-2, .103098262355290315e-2, .103098262355290315e-1, .154647393532935472e-2, .618589574131741890e-2, .288675134594812882e-1, .721687836487032205e-2, .274928699614107506e-2, .128872827944112894e-2, .721687836487032205e-2, .137464349807053753e-2, .429576093147042979e-3, .274928699614107506e-2, .429576093147042979e-3, .128872827944112894e-2, .962250448649376273e-2, .206196524710580630e-2, .687321749035268765e-3, .206196524710580630e-2, .343660874517634383e-3, .687321749035268765e-3, .412393049421161259e-2, .773236967664677362e-3, .773236967664677362e-3, .206196524710580630e-2, .866025403784438645e-1, .288675134594812882e-1, .137464349807053753e-1, .773236967664677362e-2, .288675134594812882e-1, .687321749035268765e-2, .257745655888225788e-2, .137464349807053753e-1, .257745655888225788e-2, .773236967664677362e-2, .144337567297406441e-1, .412393049421161259e-2, .171830437258817191e-2, .412393049421161259e-2, .859152186294085958e-3, .171830437258817191e-2, .412393049421161259e-2, .103098262355290315e-2, .103098262355290315e-2, .154647393532935472e-2, .577350269189625763e-1, .206196524710580630e-1, .103098262355290315e-1, .206196524710580630e-1, .515491311776451574e-2, .103098262355290315e-1, .824786098842322518e-2, .257745655888225788e-2, .257745655888225788e-2, .206196524710580630e-2, .412393049421161259e-1, .154647393532935472e-1, .154647393532935472e-1, .515491311776451574e-2, .309294787065870944e-1 },
    { 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0. },
    { .288675134594812882, .721687836487032205e-1, .288675134594812882e-1, .144337567297406441e-1, .824786098842322518e-2, .515491311776451574e-2, .721687836487032205e-1, .144337567297406441e-1, .481125224324688136e-2, .206196524710580630e-2, .103098262355290315e-2, .288675134594812882e-1, .481125224324688136e-2, .137464349807053753e-2, .515491311776451574e-3, .144337567297406441e-1, .206196524710580630e-2, .515491311776451574e-3, .824786098842322518e-2, .103098262355290315e-2, .515491311776451574e-2, .721687836487032205e-1, .144337567297406441e-1, .481125224324688136e-2, .206196524710580630e-2, .103098262355290315e-2, .144337567297406441e-1, .240562612162344068e-2, .687321749035268765e-3, .257745655888225788e-3, .481125224324688136e-2, .687321749035268765e-3, .171830437258817191e-3, .206196524710580630e-2, .257745655888225788e-3, .103098262355290315e-2, .288675134594812882e-1, .481125224324688136e-2, .137464349807053753e-2, .515491311776451574e-3, .481125224324688136e-2, .687321749035268765e-3, .171830437258817191e-3, .137464349807053753e-2, .171830437258817191e-3, .515491311776451574e-3, .144337567297406441e-1, .206196524710580630e-2, .515491311776451574e-3, .206196524710580630e-2, .257745655888225788e-3, .515491311776451574e-3, .824786098842322518e-2, .103098262355290315e-2, .103098262355290315e-2, .515491311776451574e-2, .144337567297406441, .433012701892219322e-1, .192450089729875254e-1, .103098262355290315e-1, .618589574131741890e-2, .288675134594812882e-1, .721687836487032205e-2, .274928699614107506e-2, .128872827944112894e-2, .962250448649376273e-2, .206196524710580630e-2, .687321749035268765e-3, .412393049421161259e-2, .773236967664677362e-3, .206196524710580630e-2, .433012701892219322e-1, .962250448649376273e-2, .343660874517634383e-2, .154647393532935472e-2, .721687836487032205e-2, .137464349807053753e-2, .429576093147042979e-3, .206196524710580630e-2, .343660874517634383e-3, .773236967664677362e-3, .192450089729875254e-1, .343660874517634383e-2, .103098262355290315e-2, .274928699614107506e-2, .429576093147042979e-3, .687321749035268765e-3, .103098262355290315e-1, .154647393532935472e-2, .128872827944112894e-2, .618589574131741890e-2, .866025403784438645e-1, .288675134594812882e-1, .137464349807053753e-1, .773236967664677362e-2, .144337567297406441e-1, .412393049421161259e-2, .171830437258817191e-2, .412393049421161259e-2, .103098262355290315e-2, .154647393532935472e-2, .288675134594812882e-1, .687321749035268765e-2, .257745655888225788e-2, .412393049421161259e-2, .859152186294085958e-3, .103098262355290315e-2, .137464349807053753e-1, .257745655888225788e-2, .171830437258817191e-2, .773236967664677362e-2, .577350269189625763e-1, .206196524710580630e-1, .103098262355290315e-1, .824786098842322518e-2, .257745655888225788e-2, .206196524710580630e-2, .206196524710580630e-1, .515491311776451574e-2, .257745655888225788e-2, .103098262355290315e-1, .412393049421161259e-1, .154647393532935472e-1, .515491311776451574e-2, .154647393532935472e-1, .309294787065870944e-1 },
    { 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0. },
    { .235702260395515842, .589255650988789605e-1, .235702260395515842e-1, .117851130197757921e-1, .673435029701473833e-2, .420896893563421146e-2, .589255650988789605e-1, .117851130197757921e-1, .392837100659193070e-2, .168358757425368459e-2, .841793787126842292e-3, .235702260395515842e-1, .392837100659193070e-2, .112239171616912306e-2, .420896893563421146e-3, .117851130197757921e-1, .168358757425368459e-2, .420896893563421146e-3, .673435029701473833e-2, .841793787126842292e-3, .420896893563421146e-2, .589255650988789605e-1, .117851130197757921e-1, .392837100659193070e-2, .168358757425368459e-2, .841793787126842292e-3, .117851130197757921e-1, .196418550329596535e-2, .561195858084561527e-3, .210448446781710574e-3, .392837100659193070e-2, .561195858084561527e-3, .140298964521140382e-3, .168358757425368459e-2, .210448446781710574e-3, .841793787126842292e-3, .235702260395515842e-1, .392837100659193070e-2, .112239171616912306e-2, .420896893563421146e-3, .392837100659193070e-2, .561195858084561527e-3, .140298964521140382e-3, .112239171616912306e-2, .140298964521140382e-3, .420896893563421146e-3, .117851130197757921e-1, .168358757425368459e-2, .420896893563421146e-3, .168358757425368459e-2, .210448446781710574e-3, .420896893563421146e-3, .673435029701473833e-2, .841793787126842292e-3, .841793787126842292e-3, .420896893563421146e-2, .589255650988789605e-1, .235702260395515842e-1, .117851130197757921e-1, .673435029701473833e-2, .420896893563421146e-2, .117851130197757921e-1, .392837100659193070e-2, .168358757425368459e-2, .841793787126842292e-3, .392837100659193070e-2, .112239171616912306e-2, .420896893563421146e-3, .168358757425368459e-2, .420896893563421146e-3, .841793787126842292e-3, .117851130197757921e-1, .392837100659193070e-2, .168358757425368459e-2, .841793787126842292e-3, .196418550329596535e-2, .561195858084561527e-3, .210448446781710574e-3, .561195858084561527e-3, .140298964521140382e-3, .210448446781710574e-3, .392837100659193070e-2, .112239171616912306e-2, .420896893563421146e-3, .561195858084561527e-3, .140298964521140382e-3, .140298964521140382e-3, .168358757425368459e-2, .420896893563421146e-3, .210448446781710574e-3, .841793787126842292e-3, .235702260395515842e-1, .117851130197757921e-1, .673435029701473833e-2, .420896893563421146e-2, .392837100659193070e-2, .168358757425368459e-2, .841793787126842292e-3, .112239171616912306e-2, .420896893563421146e-3, .420896893563421146e-3, .392837100659193070e-2, .168358757425368459e-2, .841793787126842292e-3, .561195858084561527e-3, .210448446781710574e-3, .140298964521140382e-3, .112239171616912306e-2, .420896893563421146e-3, .140298964521140382e-3, .420896893563421146e-3, .117851130197757921e-1, .673435029701473833e-2, .420896893563421146e-2, .168358757425368459e-2, .841793787126842292e-3, .420896893563421146e-3, .168358757425368459e-2, .841793787126842292e-3, .210448446781710574e-3, .420896893563421146e-3, .673435029701473833e-2, .420896893563421146e-2, .841793787126842292e-3, .841793787126842292e-3, .420896893563421146e-2 },
    { 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0. },
    { .288675134594812882, .721687836487032205e-1, .288675134594812882e-1, .144337567297406441e-1, .824786098842322518e-2, .515491311776451574e-2, .721687836487032205e-1, .144337567297406441e-1, .481125224324688136e-2, .206196524710580630e-2, .103098262355290315e-2, .288675134594812882e-1, .481125224324688136e-2, .137464349807053753e-2, .515491311776451574e-3, .144337567297406441e-1, .206196524710580630e-2, .515491311776451574e-3, .824786098842322518e-2, .103098262355290315e-2, .515491311776451574e-2, .721687836487032205e-1, .144337567297406441e-1, .481125224324688136e-2, .206196524710580630e-2, .103098262355290315e-2, .144337567297406441e-1, .240562612162344068e-2, .687321749035268765e-3, .257745655888225788e-3, .481125224324688136e-2, .687321749035268765e-3, .171830437258817191e-3, .206196524710580630e-2, .257745655888225788e-3, .103098262355290315e-2, .288675134594812882e-1, .481125224324688136e-2, .137464349807053753e-2, .515491311776451574e-3, .481125224324688136e-2, .687321749035268765e-3, .171830437258817191e-3, .137464349807053753e-2, .171830437258817191e-3, .515491311776451574e-3, .144337567297406441e-1, .206196524710580630e-2, .515491311776451574e-3, .206196524710580630e-2, .257745655888225788e-3, .515491311776451574e-3, .824786098842322518e-2, .103098262355290315e-2, .103098262355290315e-2, .515491311776451574e-2, .144337567297406441, .288675134594812882e-1, .962250448649376273e-2, .412393049421161259e-2, .206196524710580630e-2, .433012701892219322e-1, .721687836487032205e-2, .206196524710580630e-2, .773236967664677362e-3, .192450089729875254e-1, .274928699614107506e-2, .687321749035268765e-3, .103098262355290315e-1, .128872827944112894e-2, .618589574131741890e-2, .433012701892219322e-1, .721687836487032205e-2, .206196524710580630e-2, .773236967664677362e-3, .962250448649376273e-2, .137464349807053753e-2, .343660874517634383e-3, .343660874517634383e-2, .429576093147042979e-3, .154647393532935472e-2, .192450089729875254e-1, .274928699614107506e-2, .687321749035268765e-3, .343660874517634383e-2, .429576093147042979e-3, .103098262355290315e-2, .103098262355290315e-1, .128872827944112894e-2, .154647393532935472e-2, .618589574131741890e-2, .866025403784438645e-1, .144337567297406441e-1, .412393049421161259e-2, .154647393532935472e-2, .288675134594812882e-1, .412393049421161259e-2, .103098262355290315e-2, .137464349807053753e-1, .171830437258817191e-2, .773236967664677362e-2, .288675134594812882e-1, .412393049421161259e-2, .103098262355290315e-2, .687321749035268765e-2, .859152186294085958e-3, .257745655888225788e-2, .137464349807053753e-1, .171830437258817191e-2, .257745655888225788e-2, .773236967664677362e-2, .577350269189625763e-1, .824786098842322518e-2, .206196524710580630e-2, .206196524710580630e-1, .257745655888225788e-2, .103098262355290315e-1, .206196524710580630e-1, .257745655888225788e-2, .515491311776451574e-2, .103098262355290315e-1, .412393049421161259e-1, .515491311776451574e-2, .154647393532935472e-1, .154647393532935472e-1, .309294787065870944e-1 },
    { 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0. },
    { .235702260395515842, .589255650988789605e-1, .235702260395515842e-1, .117851130197757921e-1, .673435029701473833e-2, .420896893563421146e-2, .589255650988789605e-1, .117851130197757921e-1, .392837100659193070e-2, .168358757425368459e-2, .841793787126842292e-3, .235702260395515842e-1, .392837100659193070e-2, .112239171616912306e-2, .420896893563421146e-3, .117851130197757921e-1, .168358757425368459e-2, .420896893563421146e-3, .673435029701473833e-2, .841793787126842292e-3, .420896893563421146e-2, .589255650988789605e-1, .117851130197757921e-1, .392837100659193070e-2, .168358757425368459e-2, .841793787126842292e-3, .117851130197757921e-1, .196418550329596535e-2, .561195858084561527e-3, .210448446781710574e-3, .392837100659193070e-2, .561195858084561527e-3, .140298964521140382e-3, .168358757425368459e-2, .210448446781710574e-3, .841793787126842292e-3, .235702260395515842e-1, .392837100659193070e-2, .112239171616912306e-2, .420896893563421146e-3, .392837100659193070e-2, .561195858084561527e-3, .140298964521140382e-3, .112239171616912306e-2, .140298964521140382e-3, .420896893563421146e-3, .117851130197757921e-1, .168358757425368459e-2, .420896893563421146e-3, .168358757425368459e-2, .210448446781710574e-3, .420896893563421146e-3, .673435029701473833e-2, .841793787126842292e-3, .841793787126842292e-3, .420896893563421146e-2, .589255650988789605e-1, .117851130197757921e-1, .392837100659193070e-2, .168358757425368459e-2, .841793787126842292e-3, .235702260395515842e-1, .392837100659193070e-2, .112239171616912306e-2, .420896893563421146e-3, .117851130197757921e-1, .168358757425368459e-2, .420896893563421146e-3, .673435029701473833e-2, .841793787126842292e-3, .420896893563421146e-2, .117851130197757921e-1, .196418550329596535e-2, .561195858084561527e-3, .210448446781710574e-3, .392837100659193070e-2, .561195858084561527e-3, .140298964521140382e-3, .168358757425368459e-2, .210448446781710574e-3, .841793787126842292e-3, .392837100659193070e-2, .561195858084561527e-3, .140298964521140382e-3, .112239171616912306e-2, .140298964521140382e-3, .420896893563421146e-3, .168358757425368459e-2, .210448446781710574e-3, .420896893563421146e-3, .841793787126842292e-3, .235702260395515842e-1, .392837100659193070e-2, .112239171616912306e-2, .420896893563421146e-3, .117851130197757921e-1, .168358757425368459e-2, .420896893563421146e-3, .673435029701473833e-2, .841793787126842292e-3, .420896893563421146e-2, .392837100659193070e-2, .561195858084561527e-3, .140298964521140382e-3, .168358757425368459e-2, .210448446781710574e-3, .841793787126842292e-3, .112239171616912306e-2, .140298964521140382e-3, .420896893563421146e-3, .420896893563421146e-3, .117851130197757921e-1, .168358757425368459e-2, .420896893563421146e-3, .673435029701473833e-2, .841793787126842292e-3, .420896893563421146e-2, .168358757425368459e-2, .210448446781710574e-3, .841793787126842292e-3, .420896893563421146e-3, .673435029701473833e-2, .841793787126842292e-3, .420896893563421146e-2, .841793787126842292e-3, .420896893563421146e-2 },
    { 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0. },
    { .235702260395515842, .589255650988789605e-1, .235702260395515842e-1, .117851130197757921e-1, .673435029701473833e-2, .420896893563421146e-2, .589255650988789605e-1, .117851130197757921e-1, .392837100659193070e-2, .168358757425368459e-2, .841793787126842292e-3, .235702260395515842e-1, .392837100659193070e-2, .112239171616912306e-2, .420896893563421146e-3, .117851130197757921e-1, .168358757425368459e-2, .420896893563421146e-3, .673435029701473833e-2, .841793787126842292e-3, .420896893563421146e-2, .589255650988789605e-1, .117851130197757921e-1, .392837100659193070e-2, .168358757425368459e-2, .841793787126842292e-3, .117851130197757921e-1, .196418550329596535e-2, .561195858084561527e-3, .210448446781710574e-3, .392837100659193070e-2, .561195858084561527e-3, .140298964521140382e-3, .168358757425368459e-2, .210448446781710574e-3, .841793787126842292e-3, .235702260395515842e-1, .392837100659193070e-2, .112239171616912306e-2, .420896893563421146e-3, .392837100659193070e-2, .561195858084561527e-3, .140298964521140382e-3, .112239171616912306e-2, .140298964521140382e-3, .420896893563421146e-3, .117851130197757921e-1, .168358757425368459e-2, .420896893563421146e-3, .168358757425368459e-2, .210448446781710574e-3, .420896893563421146e-3, .673435029701473833e-2, .841793787126842292e-3, .841793787126842292e-3, .420896893563421146e-2, .589255650988789605e-1, .117851130197757921e-1, .392837100659193070e-2, .168358757425368459e-2, .841793787126842292e-3, .117851130197757921e-1, .196418550329596535e-2, .561195858084561527e-3, .210448446781710574e-3, .392837100659193070e-2, .561195858084561527e-3, .140298964521140382e-3, .168358757425368459e-2, .210448446781710574e-3, .841793787126842292e-3, .235702260395515842e-1, .392837100659193070e-2, .112239171616912306e-2, .420896893563421146e-3, .392837100659193070e-2, .561195858084561527e-3, .140298964521140382e-3, .112239171616912306e-2, .140298964521140382e-3, .420896893563421146e-3, .117851130197757921e-1, .168358757425368459e-2, .420896893563421146e-3, .168358757425368459e-2, .210448446781710574e-3, .420896893563421146e-3, .673435029701473833e-2, .841793787126842292e-3, .841793787126842292e-3, .420896893563421146e-2, .235702260395515842e-1, .392837100659193070e-2, .112239171616912306e-2, .420896893563421146e-3, .392837100659193070e-2, .561195858084561527e-3, .140298964521140382e-3, .112239171616912306e-2, .140298964521140382e-3, .420896893563421146e-3, .117851130197757921e-1, .168358757425368459e-2, .420896893563421146e-3, .168358757425368459e-2, .210448446781710574e-3, .420896893563421146e-3, .673435029701473833e-2, .841793787126842292e-3, .841793787126842292e-3, .420896893563421146e-2, .117851130197757921e-1, .168358757425368459e-2, .420896893563421146e-3, .168358757425368459e-2, .210448446781710574e-3, .420896893563421146e-3, .673435029701473833e-2, .841793787126842292e-3, .841793787126842292e-3, .420896893563421146e-2, .673435029701473833e-2, .841793787126842292e-3, .841793787126842292e-3, .420896893563421146e-2, .420896893563421146e-2 }
};


void TestExactness()
{
    DROPS::TetraBuilderCL tet( 0);
    DROPS::MultiGridCL mg( tet);
    BaryCoordCL b[3];
    b[0]= DROPS::std_basis<4>(1);
    b[1]= DROPS::std_basis<4>(2);
    b[2]= DROPS::std_basis<4>(3);
    TetraCL& s= *mg.GetAllTetraBegin();
//    s.DebugInfo( std::cout);
    std::cout.precision(25);

    Quad5_2DCL<> q;
    size_t c= 0;
         for (degy= 0; degy <= 5; ++degy) {
            for (degx= 0; degx + degy <= 5; ++degx) {
                q.assign( s, b, f);
                std::cout <<  "\tdegy: " << degy << "\tdegx: " << degx
                          << "\t\tI-Q_h: " << exactint[c++] - q.quad( 1.)
                          << "\tIntegral: " << q.quad( 1.) <<  "             ";
//                 for (size_t i= 0; i < q.size(); ++i)
//                     std::cout << '\t' << q[i];
               std::cout << std::endl;
            }
        }
}

///\brief Evaluates a function expecting world-coordinates and time as arguments in STCoord-coordinates on a tetra-prism.
template <class T= double>
class STCoordEvalCL
{
  public:
    typedef T (*fun_type)(const Point3DCL&, double);
    typedef T value_type;

  private:
    STCoord2WorldCoordCL mapper_;
    fun_type f_;

  public:
    STCoordEvalCL (const TetraPrismCL& prism, fun_type f)
        : mapper_( prism), f_(f) {}

    value_type operator() (const STCoordCL& b) const { return f_( mapper_.space( b), mapper_.time( b)); }
};

template <class T, class DomainT, class ResultIterT>
  inline ResultIterT
  evaluate_on_vertexes (T (*f)(const Point3DCL&, double), const TetraPrismCL& prism, const DomainT& dom, ResultIterT result_iterator)
{
    return std::transform( dom.vertex_begin(), dom.vertex_end(), result_iterator, STCoordEvalCL<T>( prism, f));
}

template <class T, class DomainT, class ResultContT>
  inline const ResultContT&
  resize_and_evaluate_on_vertexes (T (*f)(const Point3DCL&, double), const TetraPrismCL& prism, const DomainT& dom, ResultContT& result_container)
{
    result_container.resize( dom.vertex_size());
    evaluate_on_vertexes( f, prism, dom, sequence_begin( result_container));
    return result_container;
}

template <DROPS::Uint Dim>
void
write_spatch (const DROPS::SPatchCL<Dim>& p, std::ostream& os)
{
    os << "vertex_size: " << p.vertex_size () << " vertexes:\n";
    seq_out( p.vertex_begin(), p.vertex_end(), os);
    os << "facet_size: " << p.facet_size () << " Facets:\n";
    for (DROPS::Uint i= 0; i < p.facet_size(); ++i) {
        os << p.facet_begin()[i] << " " << p.is_boundary_facet( i) << "\n";
    }
    os << '\n';
}

void TestExactness_ST ()
{
    double err_acc= 0.;
    Uint   num_int= 0;
    DROPS::TetraBuilderCL tet( 0);
    DROPS::MultiGridCL mg( tet);
    TetraCL& s= *mg.GetAllTetraBegin();

    DROPS::byte ls[5];
    ls[4]= 1.;
    int cls= 0;
    for (ls[0]= -1; ls[0] <= 0; ++ls[0]) {
      for (ls[1]= -1; ls[1] <= 0; ++ls[1]) {
        for (ls[2]= -1; ls[2] <= 0; ++ls[2]) {
          for (ls[3]= -1; ls[3] <= 0; ++ls[3]) {
           for (ls[4]= -1; ls[4] <= 1; ls[4]+= 2, ++cls) {
            if (DROPS::SignTraitsCL<3>::pattern_idx( ls) == 0) {
                std::cout << "Skipping the zero-pattern for RefPatchCL.\n";
                continue;
            }
            std::cout << "cls: " << cls << " ls: " << (int) ls[0] << ' ' << (int) ls[1]
                      << ' ' << (int) ls[2] << ' ' << (int) ls[3]  << ' ' << (int) ls[4] << std::endl;
            std::valarray<double> ls_d( 8);
            for (Uint i= 0; i < 5; ++i)
                ls_d[i]= ls[i];
            // level set fun:  n^T*(x,t) + r ==> r= ls[0], n_3= ls[4] - ls[0]; n_0= ls[1] - ls[0]; n_1= ls[2] - ls[0], usw.
            const double r= ls[0];
            const Point4DCL n= MakePoint4D( ls[1], ls[2], ls[3], ls[4]) - Point4DCL( r);
            for (Uint i= 1; i < 4; ++i)
            ls_d[i+4]= inner_prod( n, std_basis<4>( i) + std_basis<4>( 4)) + r;
            SPatchCL<4> surf;
            surf.make_patch<DROPS::MergeCutPolicyCL>( DROPS::TetraPrismLatticeCL::instance( 1, 1), ls_d);
            QuadDomainCodim1CL<4> qdom;
            make_CompositeQuad5DomainSTCodim1 (qdom, surf, TetraPrismCL( s, 0., 1.));
            std::valarray<double> integrand( qdom.vertex_size());
            size_t c= 0;
            for (degt= 0; degt <= 5; ++degt) {
                for (degz= 0; degz + degt <= 5; ++degz) {
                    for (degy= 0; degy + degz + degt <= 5; ++degy) {
                        for (degx= 0; degx + degy + degz + degt <= 5; ++degx, ++c) {
                            evaluate_on_vertexes( g, TetraPrismCL( s, 0., 1.), qdom, Addr( integrand));
                            const double integral= quad_codim1( integrand, qdom); // Note that no factor 2 is needed on the outer boundary.
                            err_acc+= std::fabs( exactint_ST[cls][c] - integral);
                            ++num_int;
//                             std::cout <<  " degt: " << degt <<  " degz: " << degz << " degy: " << degy << " degx: " << degx
//                                       << "\t\tI-Q_h: " << exactint_ST[cls][c] - integral
//                                       << "\t\tI: " << exactint_ST[cls][c] << "\t\tQ_h: " << integral <<  "             ";
//                             std::cout << std::endl;
                        }
                    }
                }
            }
           }
          }
        }
      }
    }
    std::cout << "Sum of individual errors for " << num_int << " integrals: " << err_acc << "\n";
}


int main ()
{
  try {
    TestExactness();
    TestExactness_ST();
  }
  catch (DROPS::DROPSErrCL err) { err.handle(); }
}
